# !/usr/bin/env python
# -*- coding: utf-8 -*-
"""
 -------------------------------------------------
    File Name:     data_formatter.py
    Description:   字典的格式化输出工具
 -------------------------------------------------
 """

import json
import pprint
from typing import Any


def pprint_format(data, indent=4, width=80, compact=False) -> str:
    """
    使用 pprint 模块格式化数据。

    :param data: 要格式化的数据
    :param indent: 缩进级别
    :param width: 每行的最大宽度
    :param compact: 是否压缩输出
    :return: 格式化的字符串
    """
    formatted_kwargs = pprint.pformat(data, indent=indent, width=width, compact=compact)
    return formatted_kwargs


def json_format(data: Any, indent=4, ensure_ascii=False, separators=(',', ': ')) -> str:
    """
    使用 json 模块格式化数据。

    :param data: 要格式化的数据
    :param indent: 缩进级别
    :param ensure_ascii: 是否确保 ASCII 编码
    :param separators: 键值对和项之间的分隔符
    :return: 格式化的字符串
    """
    if not isinstance(data, dict):
        data = dict(data)

    formatted_kwargs = json.dumps(data, indent=indent, ensure_ascii=ensure_ascii, separators=separators)
    return formatted_kwargs
